home *** CD-ROM | disk | FTP | other *** search
- 0010 REM"MBFSHL.ATR: A TAPE READER & WRITER
- 0020 BEGIN
- 0200 INPUT (0,ERR=200)'CS',"COLUMBIA UNIVERISITY KERMIT TAPE READER AND WRITE
- 0200:R",'LF',"(R)ead,(W)rite? ",'CI',X$; IF CTL>1 GOTO 9000
- 0210 ON INT((POS(X$="RrWw")+1)/2) GOTO 200,800,600
- 0599 REM"WRITE A TAPE
- 0600 INPUT"WRITE A TAPE TO SEND TO COLUMBIA UNIVERSITY",'LF',"ENTER FILE NAME
- 0600: ",IFILE$;IF CTL>1 CLOSE(3,IND=9);GOTO 9000
- 0610 CLOSE(4);OPEN(4,ERR=600)IFILE$
- 0615 FID4$=FID(4); IF ASC(FID4$(10))=4 CLOSE(4);LISTPROGRAM IFILE$,"TEMP";OPE
- 0615:N(4)"TEMP" ELSE IF ASC(FID4$(10))>1 GOTO 600
- 0620 CLOSE(3);OPEN(3)"R0"
- 0625 IFILE=IFILE+1
- 0630 IF IFILE=1 CLOSE(3);OPEN(3,SEQ=0)"R0";DIM OUT$(80);OUT$(1)="VOL1KERMIT";
- 0630:WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
- 0640 DIM OUT$(80);OUT$(1)="HDR1",OUT$(5)=IFILE$,OUT$(22)="KERMIT0001"+STR(IFI
- 0640:LE:"0000")+"000100 88010 88010 000000"
- 0650 WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
- 0660 OUT$(1)="HDR2D0819200300",OUT$(50)="00"
- 0670 WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
- 0680 DIM OUT$(8192),OUT0$(0)
- 0690 READ(4,END=720)R$
- 0700 A=LEN(R$);IF LEN(OUT0$)+4+A>8192 WRITERECORD(3,TBL=9950)OUT0$;OUT0$="" F
- 0700:I; OUT0$=OUT0$+STR(A+4:"0000")+R$;GOTO 690
- 0720 IF OUT0$>"" WRITERECORD(3,TBL=9950)OUT0$
- 0730 OUT0$=""
- 0740 DIM OUT$(80);OUT$(1)="EOF1"+IFILE$,OUT$(22)="KERMIT0001"+STR(IFILE:"0000
- 0740:")+"000100 88010 88010 000000";CLOSE(3);OPEN(3)"R0";WRITERECORD(3,TBL=99
- 0740:50)OUT$
- 0750 OUT$(1)="EOF2D0819200300";CLOSE(3);OPEN(3)"R0";WRITERECORD(3,TBL=9950)OU
- 0750:T$
- 0760 PRINT "END OF FILE ",IFILE$,"..",IFILE
- 0770 GOTO 600
- 0799 REM"READ FROM TAPE
- 0800 INPUT "READ COLUMBIA UNIVERSITY TAPE",'LF',"ENTER STARTING SEQUENCE # ",
- 0800:SEQ0;IF CTL>1 GOTO 9000
- 0805 INPUT "ENTER OUTPUT DEVICE/FILE ",OFILE$;IF OFILE$>"" CLOSE(1);OPEN(1)OF
- 0805:ILE$;LOCK(1,ERR=806) ELSE GOTO 800
- 0810 CLOSE(3);FLAGP$="";OPEN(3,SEQ=SEQ0)"R0"
- 0820 DIM R$(8192);READRECORD(3,END=900,TBL=9960)R$
- 0825 FLAGP$="FOUND"
- 0829 IF R$(1,4)="VOL1" PRINT (1)R$
- 0830 IF POS(R$(1,4)="VOL1HDR1HDR2EOF1EOF2",4)>0 PRINT R$;IF R$(1,4)<>"HDR1" G
- 0830:OTO 820 ELSE B$=R$,FLAG$="",OP1$="";PRINT SEQ0,;INPUT "..CR TO CONTINUE,
- 0830: CTL III=HARDCOPY IT, CTL II TO SKIP ",'CI',*;L=0;IF CTL=2 OP1$="NEXT" E
- 0830:LSE IF CTL=3 FLAG$="PRINT";PRINT(1)R$; FI; GOTO 820
- 0840 IF OP0$>"" IF POS(OP0$=B$)<>5 GOTO 900
- 0850 IF OP1$="NEXT" GOTO 900
- 0860 A=NUM(R$(1,4)),A$=R$(1,A);PRINT A$;IF FLAG$="PRINT" PRINT (1)A$(5)
- 0870 R$=R$(A+1)
- 0880 L=L+1;IF L>20 IF FLAG$="" INPUT "CR TO CONTINUE,CTL II TO SKIP,CTL III T
- 0880:O HARDOPY IT ",'CI',*;L=0;IF CTL=2 OP1$="NEXT";GOTO 900 ELSE IF CTL=3 IF
- 0880: FLAG$="" FLAG$="PRINT";CLOSE(3);OPEN(3,SEQ=SEQ0)"R0";GOTO 820
- 0890 IF LEN(R$)>3 GOTO 860
- 0895 GOTO 820
- 0900 IF ERR=2 IF FLAGP$="" GOTO 950
- 0901 IF ERR=5 RETRY ELSE IF ERR<>2 ESCAPE
- 0905 SEQ0=SEQ0+1,FLAGP$=""
- 0910 CLOSE(3)
- 0920 OPEN(3,ERR=950)"R0"
- 0930 GOTO 820
- 0950 PRINT "END OF TAPE"
- 0960 GOTO 800
- 9949 REM CONVERSION TABLE: B4 ASCII TO STANDARD ASCII
- 9950 TABLE 7F000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
- 9950:202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F40414243
- 9950:4445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061626364656667
- 9950:68696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
- 9959 REM CONVERSION TABLE: STANDARD ASCII TO B4 ASCII
- 9960 TABLE 7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
- 9960:A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
- 9960:C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
- 9960:E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
- 16000 END
-